UDEV custom rules
Table of Content
UDEV custom rules#
Udev (userspace /dev) is a Linux sub-system for dynamic device detection and management.
Udev is based on rules
Every received device event is matched against the set of rules read from files located in /lib/udev/rules.d
Application and custom rules place under /etc/udev/rules.f folder
udev rule files must prefix with number and .rules extension.
device info / udevadm info#
Query the udev database for device information.
udevadm info -a -n <device name>
udevadm info -a -n /dev/sda
udevadm info /dev/sda
custom rule#
rule info query#
udevadm info
udevadm info /dev/sda
P: /devices/pci0000:00/0000:00:14.0/usb3/3-1/3-1.3/3-1.3:1.0/host0/target0:0:0/0:0:0:0/block/sda
N: sda
L: 0
S: disk/by-id/usb-LG_FlashDrive-0:0
S: disk/by-uuid/63AC-7AA5
S: disk/by-path/pci-0000:00:14.0-usb-0:1.3:1.0-scsi-0:0:0:0
S: disk/by-label/my_data
E: DEVPATH=/devices/pci0000:00/0000:00:14.0/usb3/3-1/3-1.3/3-1.3:1.0/host0/target0:0:0/0:0:0:0/block/sda
E: DEVNAME=/dev/sda
E: DEVTYPE=disk
E: DISKSEQ=36
E: MAJOR=8
E: MINOR=0
E: SUBSYSTEM=block
E: USEC_INITIALIZED=3012112447
E: ID_VENDOR=LG
E: ID_VENDOR_ENC=LG\x20\x20\x20\x20\x20\x20
E: ID_VENDOR_ID=0ea0
E: ID_MODEL=FlashDrive
E: ID_MODEL_ENC=FlashDrive\x20\x20\x20\x20\x20\x20
E: ID_MODEL_ID=2168
E: ID_REVISION=2.00
E: ID_SERIAL=LG_FlashDrive-0:0
E: ID_TYPE=disk
E: ID_INSTANCE=0:0
E: ID_BUS=usb
E: ID_USB_INTERFACES=:080650:
E: ID_USB_INTERFACE_NUM=00
E: ID_USB_DRIVER=usb-storage
E: ID_PATH=pci-0000:00:14.0-usb-0:1.3:1.0-scsi-0:0:0:0
E: ID_PATH_TAG=pci-0000_00_14_0-usb-0_1_3_1_0-scsi-0_0_0_0
E: ID_FS_LABEL=my_data
E: ID_FS_LABEL_ENC=my_data
E: ID_FS_UUID=63AC-7AA5
E: ID_FS_UUID_ENC=63AC-7AA5
E: ID_FS_VERSION=FAT16
E: ID_FS_TYPE=vfat
E: ID_FS_USAGE=filesystem
| “P:” | Device path in /sys/ |
| “E:” | Device property |
| “S:” | Device node symlink |
udevadm info output prefixes full list
write custom rule#
SUBSYSTEM=="usb", ACTION=="add", ENV{DEVTYPE}=="usb_device", RUN+="/usr/local.bin/trigger.sh"
/dev folder)
Note
- todo: check again
Script must location
/usr/local/bin/,/bin,
reload rules#
udevadm control --reload
Tip
Sometimes it’s better to reboot